package com.fowo.api.sys.service;

import com.fowo.api.sys.model.SysTaskErrorMessageTemplateData;

import javax.mail.MessagingException;
import java.util.Map;

/**
 * 系统邮件服务
 */
public interface SysMailService {

    String TPL_TASK_ERROR = "task-error.html";

    /**
     * 发送邮件
     * @param toMailAddress 收件地址,多个地址可以使用逗号或分号分隔
     * @param subject 主题（可用 SpEL 表达式）
     * @param template 使用模版
     * @param variables 模版数据
     */
    void send(String toMailAddress, String subject, String template, Map<String,Object> variables) throws MessagingException;

    default void sendTaskError(String toMailAddress, SysTaskErrorMessageTemplateData data) throws MessagingException {
        send(toMailAddress, "'任务失败告警'", TPL_TASK_ERROR, data.toVariables());
    }
}
